package ar.edu.utn.frba.disenio.aterrizar.ui.arena;

import org.uqbar.arena.actions.MessageSend;
import org.uqbar.arena.widgets.Button;
import org.uqbar.arena.widgets.Panel;
import org.uqbar.arena.widgets.tables.Column;
import org.uqbar.arena.widgets.tables.Table;
import org.uqbar.arena.windows.WindowOwner;
import ar.edu.utn.frba.disenio.aterrizar.aerolineas.Vuelo;
import ar.edu.utn.frba.disenio.aterrizar.ui.arena.transformers.AsientoTransformer;
import ar.edu.utn.frba.disenio.aterrizar.ui.arena.transformers.FechaTransformer;
import ar.edu.utn.frba.disenio.aterrizar.ui.arena.transformers.PrecioTransformer;
import ar.edu.utn.frba.disenio.aterrizar.ui.arena.transformers.VueloTransformer;

public abstract class ListadoWindow<T> extends BasicaWindow<T>{

	private String busqueda;
	
	public ListadoWindow(WindowOwner owner, T model) {
		super(owner, model);
	}
	
	@Override
	public void createContents(Panel mainPanel) {
		super.createContents(mainPanel);		
	}
	
	public void actionPanel(Panel mainPanel) {
		new Button(mainPanel)//
		.setCaption("Cerrar")
		.onClick(new MessageSend(this, "close"));
	}

	protected Table<Vuelo> crearGrid(Panel mainPanel) {
		Table<Vuelo> table = new Table<Vuelo>(mainPanel, Vuelo.class);
		table.setHeigth(150);
		table.setWidth(500);
		table.bindItemsToProperty(this.getBusqueda());
		
		return table;
	}
	
	protected void descripcionTabla(Table<Vuelo> table){
	
		Column<Vuelo> fSalida = new Column<Vuelo>(table);
		fSalida.setTitle("Salida");
		fSalida.setFixedSize(100);
		fSalida.bindContentsToTransformer(new FechaTransformer());
		
	
		Column<Vuelo> aerolinea = new Column<Vuelo>(table);
		aerolinea.setTitle("Aerolinea");
		aerolinea.setFixedSize(100);
		aerolinea.bindContentsToProperty("aerolinea");
		
		Column<Vuelo> vuelo = new Column<Vuelo>(table);
		vuelo.setTitle("Vuelo");
		vuelo.setFixedSize(100);
		vuelo.bindContentsToTransformer(new VueloTransformer());
		
		Column<Vuelo> asiento = new Column<Vuelo>(table);
		asiento.setTitle("Asiento");
		asiento.setFixedSize(100);
		asiento.bindContentsToTransformer(new AsientoTransformer());
		
		Column<Vuelo> precio = new Column<Vuelo>(table);
		precio.setTitle("Precio");
		precio.setFixedSize(100);
		precio.bindContentsToTransformer(new PrecioTransformer());
	}
	
	public void setBusqueda(String busqueda) {
		this.busqueda = busqueda;
	}

	public String getBusqueda() {
		return busqueda;
	}
}
